#include <REGX52.H>

void Delayxms(int x)		//@12.000MHz
{
	unsigned char i, j;
	while(x--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}

}


// 第几个LED显示num
void DisplayNum(int n,int num)
{
	// 0-9 段码对应的值
	int nums[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
	switch(n)
	{
		case 1: P2_4 = 0; P2_3 = 0; P2_2 = 0;
					break;
		case 2: P2_4 = 0; P2_3 = 0; P2_2 = 1;
					break;
		case 3: P2_4 = 0; P2_3 = 1; P2_2 = 0;
					break;
		case 4: P2_4 = 0; P2_3 = 1; P2_2 = 1;
				break;	
		case 5: P2_4 = 1; P2_3 = 0; P2_2 = 0;
					break;
		case 6: P2_4 = 1; P2_3 = 0; P2_2 = 1;
					break;
		case 7: P2_4 = 1; P2_3 = 1; P2_2 = 0;
					break;
		case 8: P2_4 = 1; P2_3 = 1; P2_2 = 1;
				break;
	}
	// 显示数字


	P0 = nums[num];
	// 消影：解决数码管段选 残留问题
	Delayxms(1);
	P0 = 0;
}


void main()
{
	
	while(1)
	{
		DisplayNum(2,5);
		//Delayxms(20);
		DisplayNum(3,6);
		//Delayxms(20);
		DisplayNum(4,7);
		//Delayxms(20);
	}
}